package com.gxa.hualianeshop.common.base;

/**
 * 结果状态的枚举
 */
public enum ResultCode {
    /**
     * 成功  200
     */
    SUCCESS(0, "成功"),
    SUCCESS_FIND(0, "查询成功"),
    SUCCESS_CRUD(0, "更新成功"),

    //操作失败failed
    FAILED_CRUD(-1, "操作失败"),
    /**
     * 数据验证有关 -- 3000*
     */
    UN_DATA(30001, "没有数据"),
    PARAM_ERROR(30002, "参数不正确"),
    PARAM_FORMAT_ERROR(30003, "参数数据格式有误"),
    COMMENT_EMPTY(30004, "内容必须填写"),
    CODE_ERROR(30005, "验证码错误"),
    /**
     * 手机号已被注册
     */
    REGISTER_MOBILE_ERROR(30006, "手机号已被注册"),
    /**
     * 登录 -- code 4000*开始
     */
    LOGIN_PHONE_ERROR(40001, "手机号码不正确"),
    LOGIN_ACCOUNT_ERROR(40002, "账号不正确"),
    /**
     * 登陆失败
     */
    LOGIN_ERROR(31003, "登录失败,用户名或者密码错误"),
    LOGIN_PASSWORD_ERROR(40004, "密码不正确"),
    /**
     * 该用户已被禁用
     */
    LOGIN_DISABLED_ERROR(40005, "该用户已被禁用"),
    /**
     * 登录相关 token
     */
    TOKEN_EXPIRED_ERROR(40006, "token过期,请重新登录"),
    TOKEN_NULL(40007, "token不能为空,请重新登录"),
    /**
     * 权限相关  4100*
     */
    LOGIN_AUTH(41001, "需要登录"),
    LOGIN_ACL(41002, "没有权限"),
    LOGIN_ACCESS(41003, "权限问题"),
    FETCH_ACCESSTOKEN_FAIL(41004, "获取accessToken失败"),
    FETCH_USERINFO_ERROR(43004, "获取用户信息失败"),
    /**
     * 短信服务 1000
     */
    SMS_SEND_ERROR(10001, "短信发送失败"),
    SMS_SEND_ERROR_BUSINESS_LIMIT_CONTROL(10002, "短信发送过于频繁"),

    /**
     * 其他 错误信息 5000
     */
    BAD_SQL_GRAMMAR(50001, "sql语法错误"),
    JSON_PARSE_ERROR(50002, "json解析异常"),
    URL_ENCODE_ERROR(50003, "URL编码失败"),
    ILLEGAL_CALLBACK_REQUEST_ERROR(50004, "非法回调请求"),
    GATEWAY_ERROR(50005, "服务不能访问"),
    UNKNOWN_REASON(50006, "未知错误"),
    RUNTIME_EXCEPTION(50007, "服务运行报错,请联系管理员处理"),
    REQUEST_METHOD_ERROR(50008, "请求方式有误"),
    STACK_OVERFLOW_ERROR(50009, "栈溢出"),
    DATA_OCCUPIED_ERROR(50010, "数据被引用不能删除" ),
    RESULT_ERROR(500011, "结果集设置异常"),
    FILE_HEAD_ERROR(500012, "头部文件报错"),
    FILE_CONTEXT_ERROR(500013, "头部内容出错"),
    FILE_NOTHING_ERROR(500014, "文件内容为空"),
    FILE_NULL_ERROR(500015, "文件为空"),

    REPEAT_CREATE_ORDER(500016, "不可以重复创建订单");

    private Integer code;
    private String message;

    ResultCode(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}
